const MyPromise = require('./MyPromise')

let mypromise = new MyPromise((resove, reject) => {
  setTimeout(() => {
    resove('成功')
  }, 2000)
  // resove('成功')
  // reject('失败')
})

// mypromise
//   .then(
//     (value) => {
//       console.log(value)
//       // throw new Error('then error')
//       return 'a'
//     },
//     (reason) => {
//       console.log(reason)
//       return 100
//     }
//   )
//   .then((value) => {
//     console.log(value)
//   })

// function other() {
//   return new MyPromise((resolve, reject) => {
//     resolve('other')
//   })
// }

// let p1 = mypromise.then((value) => {
//   console.log('value', value)
//   return p1
// })

// p1.then(
//   (value) => {
//     console.log(value)
//   },
//   (reason) => {
//     console.log(reason)
//   }
// )
// .catch((reason) => {
//   console(reason)
// })
// .then((value) => {
//   console.log(value)
// })
// mypromise.then(
//   (value) => {
//     console.log('value', value)
//   },
//   (reason) => {
//     console.log(reason)
//   }
// )
// mypromise.then(
//   (value) => {
//     console.log('value', value)
//   },
//   (reason) => {
//     console.log(reason)
//   }
// )

function p2() {
  return new MyPromise(function (resolve, reject) {
    resove('p2 resolve')
    reject('reject')
  })
}

// p2()
//   .finally(() => {
//     console.log('finaly')
//     return p1
//   })
//   .then(
//     (value) => {
//       console.log(value)
//     },
//     (reason) => {
//       console.log(reason)
//     }
//   )

p2().then((value) => console.log(value).catch((reason) => console.log(reason)))
